/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package otcapp.controlador.modelocombobox;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import otcapp.entidades.Departamento;

/**
 *
 * @author diego
 */
public class ModeloComboDepartamento extends DefaultComboBoxModel implements Comparator<Departamento> {

    private List<Departamento> listaDepartamentos;

    public ModeloComboDepartamento(List<Departamento> departamentos) {
        listaDepartamentos = departamentos;
        addElement("Seleccione un Departamento");
        for (Departamento depto : departamentos) {
            addElement(depto.getNombreDepartamento());

        }

    }
       
    public Departamento getDepartamentoSeleccionado() {
        Departamento deptoEncontrado = null;
        for (Departamento depto : listaDepartamentos) {
            if (depto.getNombreDepartamento().equals(super.getSelectedItem().toString())) {
                deptoEncontrado = depto;
            }
        }

        return deptoEncontrado;

    }
   

    public void setDepartamentoSeleccionado(Departamento deptoSeleccionado) {
        if (listaDepartamentos != null) {
            for (Departamento depto : listaDepartamentos) {
                if (depto.getNombreDepartamento().equals(deptoSeleccionado.getNombreDepartamento())) {
                    setSelectedItem(deptoSeleccionado.getNombreDepartamento());
                }
            }
        }
    }

     public void ordenar() {
        Collections.sort(listaDepartamentos, this);
        removeAllElements();
        addElement("Seleccione un Departamento");

        for (Departamento depto : listaDepartamentos) {
            addElement(depto.getNombreDepartamento());

        }
    }

    @Override
    public int compare(Departamento d1, Departamento d2) {
        return d1.getNombreDepartamento().compareToIgnoreCase(d1.getNombreDepartamento());
    }
}
